define("slideShowGallery",["lodash","core","skins","santaProps","utils","coreUtils","galleriesCommon","displayer"],function(a,b,c,d,e,f,g,h){"use strict";var i=b.compMixins;var j=f.matrix.scalingCalculations;var k=g.utils.galleriesHelperFunctions;var l=e.galleriesCommonLayout;function m(a,b){return o(a+1,b)}function n(a,b){return o(a-1,b)}function o(a,b){return(a%b+b)%b}function p(a,b){return String(a+1)+"/"+String(b)}function q(a,b,c){if(b==="flexibleHeight"){return a.displayerSize.height}return c}function r(b){return{currentIndex:a.get(b,"currentIndex",0)}}return{displayName:"SlideShowGallery",mixins:[i.skinBasedComp,g.mixins.galleryAutoPlayMixin,i.animationsMixin,i.timeoutsMixin,i.skinInfo,i.compStateMixin(r)],statics:{useSantaTypes:true,behaviors:{nextSlide:{methodName:"next"},prevSlide:{methodName:"prev"}}},propTypes:a.assign({id:d.Types.Component.id.isRequired,compData:d.Types.Component.compData.isRequired,compProp:d.Types.Component.compData.isRequired,skin:d.Types.Component.skin.isRequired,style:d.Types.Component.style.isRequired,currentUrlPageId:d.Types.currentUrlPageId.isRequired,isMobileView:d.Types.isMobileView.isRequired,isMobileDevice:d.Types.Device.isMobileDevice.isRequired,isTabletDevice:d.Types.Device.isTabletDevice.isRequired,isZoomOpened:d.Types.isZoomOpened.isRequired,isPlayingAllowed:d.Types.RenderFlags.isPlayingAllowed.isRequired,shouldResetGalleryToOriginalState:d.Types.RenderFlags.shouldResetGalleryToOriginalState.isRequired,windowTouchEvents:d.Types.SiteAspects.windowTouchEvents.isRequired},d.santaTypesUtils.getSantaTypesByDefinition(h)),getInitialState:function(){this.shouldResetGalleryToOriginalState=this.props.shouldResetGalleryToOriginalState;this.props.windowTouchEvents.registerToWindowTouchEvent("touchStart",this);this.isAnimating=false;this.getButtonsState=this.getButtonsState||a.noop;return a.assign(r(),{$mobile:this.props.isMobileDevice||this.props.isTabletDevice?"mobile":"notMobile",$displayDevice:this.props.isMobileView?"mobileView":"desktopView",displayerPanelState:"notShowPanel",$touchRollOverSupport:"touchRollOut",$animationInProcess:null},this.getButtonsState())},componentDidMount:function(){this.updateAutoplayState()},componentWillReceiveProps:function(b){var c=false;var d={$mobile:b.isMobileDevice||b.isTabletDevice?"mobile":"notMobile",$displayDevice:b.isMobileView?"mobileView":"desktopView"};if(this.props.compProp.autoplay!==b.compProp.autoplay){var e=b.compProp.autoplay&&!this.props.isZoomOpened&&this.props.isPlayingAllowed?"autoplayOn":"autoplayOff";c=true;d.shouldAutoPlay=b.compProp.autoplay;d.$slideshow=e}a.assign(d,this.getButtonsState());this.setState(d,function(){if(c){this.updateAutoplayState();this.handleAction(d.$slideshow)}}.bind(this));if(this.shouldResetGalleryToOriginalState!==b.shouldResetGalleryToOriginalState){if(this.shouldResetGalleryToOriginalState&&this.props.compProp.imageMode==="flexibleHeight"&&this.resetGalleryState){this.resetGalleryState()}this.shouldResetGalleryToOriginalState=b.shouldResetGalleryToOriginalState}},componentWillUnmount:function(){this.props.windowTouchEvents.unregisterFromWindowTouchEvent("touchStart",this)},getSkinProperties:function(){var b=this.props.compData;var c,d,e;var f=b.items&&b.items.length>0;if(f){c=b.items[this.state.currentIndex];d=this.getDisplayerSizeAfterScaling(c);e=q(d,this.props.compProp.imageMode,this.props.style.height)}var g=f?this.hideShowPanel:a.noop;var h={itemsContainer:{children:f?this.generateNextPagesIfNeeded().concat([this.createDisplayer(c,this.state.currentIndex)]):[],style:{height:"100%"},"data-gallery-id":this.props.id},buttonPrev:{onClick:this.prev,style:{visibility:!this.props.compProp.isHidden&&f&&this.props.compProp.showNavigation?"visible":"hidden"},"data-gallery-id":this.props.id},buttonNext:{onClick:this.next,style:{visibility:!this.props.compProp.isHidden&&f&&this.props.compProp.showNavigation?"visible":"hidden"},"data-gallery-id":this.props.id},counter:{children:p(this.state.currentIndex,this.props.compData.items.length),style:{visibility:!this.props.compProp.isHidden&&this.props.compProp.showCounter?"visible":"hidden"},"data-gallery-id":this.props.id},border:{style:{height:e},"data-gallery-id":this.props.id},autoplay:{onClick:this.toggleAutoPlay,style:{cursor:"pointer",visibility:this.shouldShowAutoPlay()?"visible":"hidden"},"data-gallery-id":this.props.id},"":{style:{height:e,overflow:"hidden"},onMouseEnter:g,onMouseLeave:g,onMouseMove:g,onTouchStart:this.onComponentTouchStart,"data-gallery-id":this.props.id,"data-height-diff":k.getSkinHeightDiff(this.props.skin),"data-width-diff":k.getSkinWidthDiff(this.props.skin),"data-text-alignment":this.props.compProp.alignText}};if(this.props.compProp.imageMode==="flexibleHeight"){l.updateSkinPropsForFlexibleHeightGallery(h,e)}return h},onComponentTouchStart:function(a){this.hideShowPanel(a);if(this.state.$touchRollOverSupport==="touchRollOut"){this.setState({$touchRollOverSupport:"touchRollOver"})}},onWindowTouchStart:function(a){if(this.state.$touchRollOverSupport==="touchRollOver"&&a.target.getAttribute("data-gallery-id")!==this.props.id){this.hideShowPanel({type:"mouseleave",target:a.target});this.setState({$touchRollOverSupport:"touchRollOut"})}},hideShowPanel:function(a,b,c){var d=a.type==="mouseleave"?"notShowPanel":"showPanel";var e=this.props.compData.items[this.state.currentIndex];var f=this.props.id+e.id+this.state.currentIndex;if(this.refs[f].getPanelState()!==d){this.refs[f].setPanelState(d)}if(!c&&d!==this.state.displayerPanelState){this.setState({displayerPanelState:d})}},prev:function(a){var b=this.props.compProp.reverse;this.moveSlide(!b,a)},next:function(a){var b=this.props.compProp.reverse;this.moveSlide(b,a)},moveSlide:function(a,b){if(this.isAnimating){return false}var c=a?n(this.state.currentIndex,this.props.compData.items.length):m(this.state.currentIndex,this.props.compData.items.length);if(this.state.currentIndex===c){return false}this.hideShowPanel({type:"mouseleave",target:{id:""}},{},true);var d=this.props.compData.items[c].id;var e=this.props.compData.items[this.state.currentIndex].id;var f=this.props.id+d+c;var g=this.props.id+e+this.state.currentIndex;this.setImageTransitionPhase(c,"transIn");this.setImageTransitionPhase(this.state.currentIndex,"transOut");var h={swipeVertical:"SlideVertical",swipeHorizontal:"SlideHorizontal",crossfade:"CrossFade",outIn:"OutIn",none:"NoTransition"};var i=this.props.compProp.transition==="none"?0:this.props.compProp.transDuration;this.setState({$animationInProcess:"animationInProcess"});var j=this.sequence();if(this.props.compProp.imageMode==="flexibleHeight"){var k=this.getDisplayerSizeAfterScaling(d);j.add("","BaseDimensions",this.props.compProp.transDuration,0,{to:{height:k.displayerSize.height}})}j.add("itemsContainer","BaseDimensions",0,0,{to:{zIndex:0}},0).add({sourceRefs:g,destRefs:f},h[this.props.compProp.transition],i,0,{reverse:a},0).add("itemsContainer","BaseDimensions",0,0,{to:{clearProps:"zIndex",immediateRender:false}}).onStartAll(function(){this.isAnimating=true}.bind(this)).onCompleteAll(function(){this.animationCompleteCallback(c,b)}.bind(this)).execute()},setImageTransitionPhase:function(a,b){var c=this.props.compData.items[a].id;var d=this.props.id+c+a;this.refs[d].setTransitionPhase(b)},animationCompleteCallback:function(b,c){this.isAnimating=false;this.registerReLayout();this.setImageTransitionPhase(b,"noTransition");this.setImageTransitionPhase(this.state.currentIndex,"noTransition");this.setState({currentIndex:b,$animationInProcess:null},function(){this.updateAutoplayState();var b=this.props.compData.items[this.state.currentIndex];this.handleAction("imageChanged",{id:b.id});if(a.isFunction(c)){c()}}.bind(this))},getDisplayerSizeAfterScaling:function(a){return j.getSizeAfterScaling({itemHeight:this.props.style.height-k.getSkinHeightDiff(this.props.skin),itemWidth:this.props.style.width-k.getSkinWidthDiff(this.props.skin),displayerData:a,imageMode:this.props.compProp.imageMode,heightDiff:this.getDisplayerHeightDiff(),widthDiff:this.getDisplayerWidthDiff(),bottomGap:this.getBottomGap()})},generateNextPagesIfNeeded:function(){var a;var b;var c=[];var d=m(this.state.currentIndex,this.props.compData.items.length);if(d!==this.state.currentIndex){a=this.props.compData.items[d]}var e=n(this.state.currentIndex,this.props.compData.items.length);if(e!==this.state.currentIndex&&e!==d){b=this.props.compData.items[e]}var f={visibility:"hidden",opacity:0};if(a){c.push(this.createDisplayer(a,d,f))}if(b){c.push(this.createDisplayer(b,e,f))}return c},createDisplayer:function(b,c,d){var e=this.getDisplayerSizeAfterScaling(b);return this.createChildComponent(b,"wysiwyg.viewer.components.Displayer","imageItem",{key:b.id,ref:this.props.id+b.id+c,id:this.props.id+b.id+c,currentUrlPageId:this.props.currentUrlPageId,galleryDataId:this.props.compData.id,galleryId:this.props.id,imageWrapperSize:e.imageWrapperSize,showPanelState:d?"notShowPanel":this.state.displayerPanelState,heightDiff:this.getDisplayerHeightDiff(),widthDiff:this.getDisplayerWidthDiff(),bottomGap:this.getBottomGap(),imageIndex:c,style:a.merge({width:e.displayerSize.width,height:e.displayerSize.height,position:"absolute",left:0,top:0},d)})},getDisplayerHeightDiff:function(){var a=this.getSkinExports().imageItem.skin;var b=this.getParams(["topPadding","imgHeightDiff"],a);return k.getDisplayerHeightDiff(c.skins[a],b,this.state.$displayDevice)},getDisplayerWidthDiff:function(){var a=this.getSkinExports().imageItem.skin;return k.getDisplayerWidthDiff(c.skins[a],this.state.$displayDevice)},getBottomGap:function(){var a=c.skins[this.props.skin];return a.exports&&a.exports.bottomGap||0}}});